iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0
Software Development

PHP 語法通關系列 第 20

Day20 類別與物件介紹

  • 分享至 

  • xImage
  •  

object---物件(東西)、概念,宇宙間任何具體的東西或抽象的事物

物件導向(object-oriented),全名是「物件導向程式設計」,大陸用語是面向對象,兩個其實是一樣的唷~ ~物件導向指的是用程式來模擬真實世界物體的特性和使用方式

舉例來說,生活中常常可以看到許許多多的物體,在程式中我們稱為物件,因此例如機車、螢幕、滑鼠、背包、人等等,我們在程式中都叫做物件,為了模擬真實世界,解決真實世
界的問題,利用「物件」的概念來架構所有的軟體。

了解幾個跟物件導向相關的單詞

oo--物件導向 Object Oritened
OOA -- (Object Oritened Analysis) 物件導向的分析方法
OOD -- (Object Oritened Design) 物件導向的設計方法
OOI -- (Object Oritened implementation) 物件導向的實現方法
OOP -- (Object Oritened Programming)物件導向的程序設計 (OOA->OOD->OOI)

物件導向程式設計的基本特性
  • 封裝性(Encapsulation):
    將資料與處埋資料的方法集中在一個類別中,放在一起的動作就稱為封裝,欲取得類別內的資料,必須透過方法來取得,因此資料對外是隱藏的

  • 繼承性(Inheritance):
    利用繼承的方式來遺傳(~100%)上層的功能及依需要增減其函式或是覆蓋,可簡化重覆撰
    寫程式,並且減少出錯的機率

  • 多型性(Polymorphism):
    用同樣的表示方式而能處理不同類別資料的方式,就稱之為多型,方式是定義名稱相同的方法,可以傳入單或多個數的參數或給型態,利用參數個數和型態,呼叫到對應的方法

三個主要特徵來描述物件(Object)

所有事物的實體表現就是物件

  1. 狀態(state):
    物件的狀態指的是「物件本身所包含的資訊」,指物件各種特性的現況。
    比如貓咪有可愛、傲嬌、毛色、體型等等資訊,或是柚子有水分多寡、顏色等資訊。

  2. 行為(behavior):
    物件的行為,或是物件提供的操作,指物件的功能。
    比如說貓可以奔跑、撒嬌、爬高,或是柚子可以做帽子等等

  3. 身份唯一(identity):
    每個物件都是唯一的,身份標示一個物件,假設你有一隻可愛的貓貓,那那隻貓貓對你而言就是唯一的那隻

class 類別

所有描述事物的概念都是類,所有事物的操作流程也是一個類,類是一種思想上得或者未實現的東西

基本語法:

class 類名{
   //屬性、方法
}

例如:
男人是類
女人是類
人是類
做飯是類(做飯的過程)
連接數據庫也是一個類(連接數據庫的過程)

類和對象的關係

類別:定義程式的方法、屬性
物件:可執行的東西
物件是類別的實例化
簡單來說物件的媽媽就是類別,物件是由類產生的一個實際的事物或者操作流程,這個過程叫做實例化,做出一個實際存在的例子或物體的過程。

  • 抽象化 VS 實例化
    把物件多個抽象特徵抽出來總結到一起,形參一個概念,就是抽象化,把實際的特徵抽出來總結到一起,形成一個概念,就是抽象化。而把概念付出實際做出來就是實例化。

  • 成員

    • 屬性
    • 方法
  • 例子:類和物件
    貓咪:

    • 特徵:
      體型
      個性
      年齡
    • 功能:
      會撒嬌
      會傲嬌
      會咬線
      會爬樹
    • 一種是用於對特徵的描述 ---- 成員屬性(負責存放物件的資料)
    • 一種是對其功能的描述 ---- 成員方法
  • 一個類別包含:

    • 屬性(屬性是一些直接定義出來的變數)
    • 方法(方法是一些功能的函數)

類的聲明

  • 類文件的書寫規則(通常)

    • 函數的文件名xxx.func.php
    • 類的文件名 xxx.class.php
    • 類名慣用駝峰命名法是每一個單詞的首字母大寫,那麼就意味著類文件名的首字母也要大寫
  • 類的書寫規則

    • 類必須以class關鍵字開始,class關鍵字之後跟類名,類名通常和文件名相同。
    • 類名之後直接跟{}即可。
  • 成員屬性的書寫規則:

    • 聲明成員屬性時必須使用關鍵字var或者public private等。
    • 聲明成員屬性時,可以賦值也可不賦值。
    • 聲明成員屬性時,不能賦一個函數值。
  • 成員方法的書寫規則:

    • 聲明成員方法時,需要使用function關鍵字。
    • 聲明成員方法可以傳入參數也可以不傳入參數。
    • 聲明成員方法時,方法允許存在返回值。
    • 記住:類中只能出現成員屬性和成員方法,不允許出現其他的代碼,否則會有語法錯誤。

上一篇
Day19 PHP的常用函數-4:文件處理函數、Json
下一篇
Day21 類別與物件--魔術方法construct and deconstruct
系列文
PHP 語法通關30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言